import { getBanners } from "@/api/banner"

export default {
    namespaced: true, //命名空间
    state: { //仓库初始值
        loading: false, //加载动画
        data: [], //数据
    },
    mutations: {
        setLoading(state, payload) {
            //把仓库原始数据 传过来的数据作为形参、
            state.loading = payload;
        },
        setData(state, payload) {
            state.data = payload
        }
    },

    // 设置异步
    actions: {
        // 异步获取服务端数据
        async fetchBanner(ctx) {
            if (ctx.state.data.length) {
                return;
                //如果 我们的data数组里面有值的话 那就说明我们已经获取过了 所以我们就不用在获取了
            }
            //把loading 的加载动画效果设置为ture
            ctx.commit("setLoading", true);
            //ajax 获取服务端数据
            const resp = await getBanners();
            //调用setData 把获取到的服务器数据 存到仓库里面
            ctx.commit("setData", resp)
            //在给仓库存完数据的时候 表示我们的数据获取已经结束了 所以我们把loading 设置为false
            ctx.commit("setLoading", false)
        }
    }
}